package com.newtouch.bxzs.policy.service;


import com.newtouch.bxzs.policy.model.vo.InsuranceNoticeVO;
import com.newtouch.bxzs.policy.model.vo.RenewalNoticeVO;
import com.newtouch.bxzs.policy.model.vo.SuccessfulSurrenderNoticeVO;
import com.newtouch.bxzs.policy.model.vo.SurrenderNoticeVO;

/**
 * 调用保单各类通知发送接口
 *
 * <p>
 * <b>History:</b>
 * <table border="1">
 * <tr>
 * <th>Date</th>
 * <th>Operator</th>
 * <th>Memo</th>
 * </tr>
 * <tr>
 * <td>2021/2/3 14:16</td>
 * <td>linhongxi</td>
 * <td>Create</td>
 * </tr>
 * </table>
 *
 * @author linhongxi
 * @version 1.0.0
 * @since 1.0.0
 */
public interface PolicyNoticeService {
    /**
     * 保险端发送投保成功通知
     *
     * @param insuranceNoticeVO
     * @return 通知成功/失败
     */
    boolean successfulInsuranceNotice(InsuranceNoticeVO insuranceNoticeVO);

    /**
     * 保险端退保申请通知
     *
     * @param surrenderNoticeVO
     * @return 通知成功/失败
     */
    boolean surrenderApplicationNotice(SurrenderNoticeVO surrenderNoticeVO);

    /**
     * 保险端退保成功通知
     *
     * @param successfulSurrenderNoticeVO
     * @return 通知成功/失败
     */
    boolean successfulSurrenderNotice(SuccessfulSurrenderNoticeVO successfulSurrenderNoticeVO);

    /**
     * 保险端发送保单续期通知
     *
     * @param renewalNoticeVO
     * @return 通知成功/失败
     */
    boolean renewalNotice(RenewalNoticeVO renewalNoticeVO);

    /**
     * 保险端发送保单满期通知
     *
     * @param insuranceNoticeVO
     * @return 通知成功/失败
     */
    boolean expirationNotice(InsuranceNoticeVO insuranceNoticeVO);

}
